Français Virtuose

Meta description:

Vous laissez d'un coup partir ce que vous reteniez.

  • Tags:

    Soin biologiqueRéussite automatique
  • Name:

    aReleaseEmotions

  • Displayed name:

    Relâcher les émotions

  • Description:

    Vous laissez d'un coup partir ce que vous reteniez. Chaque Point d'émotion emmagasiné produit un effet propre à l'émotion qui l'a généré : - **Rage** : 1d6 PdV récupérés par Point. - **Euphorie** : 1 seconde de temps de réaction en moins par Point. - **Sérénité** : +0,1 PA/s pendant 10 secondes par Point. - **Mélancolie** : 1d10 × 10 Flux récupérés par Point. *Vous choisissez librement combien de Points vous relâchez dans chaque émotion, et vous pouvez en mélanger plusieurs. Les Points dépensés sont perdus.*

  • Cast description:

    | PA: vAP.string | TdR: vCD.strings | | :---: | :---: | | **Flux: vFluxOrCost.string ➞ vFluxCost.string** | **Portée: vRange.string** | @if vRage.value + vEuphoria.value + vSerenity.value + vMelancholy.value == 0 then [[***Vous n'avez aucun Point d'émotion à relâcher.***]] else [[Vous relâchez d'un coup ce que vous reteniez :]] end @if vRage.value > 0 then [[ - **Rage (vRage.string)** ➞ vous récupérez **vRage.stringd6 [vRage.stringd6]** PdV.]] end @if vEuphoria.value > 0 then [[ - **Euphorie (vEuphoria.string)** ➞ votre temps de réaction est réduit de **vEuphoria.string seconde(s)**.]] end @if vSerenity.value > 0 then [[ - **Sérénité (vSerenity.string)** ➞ vous régénérez **{vSerenity.value*0.1} PA/s** de plus pendant **5 secondes**.]] end @if vMelancholy.value > 0 then [[ - **Mélancolie (vMelancholy.string)** ➞ vous récupérez **vMelancholy.stringd10 [vMelancholy.stringd10] × 10** Flux.]] end

  • Condition:

    assert(character.sFlux.current >= vFluxCost.value, [[Vous n'avez pas assez de Flux.]])
    assert(vRage.value + vEuphoria.value + vSerenity.value + vMelancholy.value > 0, [[Vous n'avez aucun Point d'émotion à relâcher.]])
    assert(vRage.value == 0 or vRage.value <= character.sRagePoints.current, [[Vous n'avez pas assez de Points de Rage.]])
    assert(vEuphoria.value == 0 or vEuphoria.value <= character.sEuphoriaPoints.current, [[Vous n'avez pas assez de Points d'Euphorie.]])
    assert(vSerenity.value == 0 or vSerenity.value <= character.sSerenityPoints.current, [[Vous n'avez pas assez de Points de Sérénité.]])
    assert(vMelancholy.value == 0 or vMelancholy.value <= character.sMelancholyPoints.current, [[Vous n'avez pas assez de Points de Mélancolie.]])
  • AP cost:

    3

  • Cooldown:

    10

  • Flux cost:

    apMod(vAP)*cdMod(vCD)*targetMod(1,0)*vRange*(effect(vRage*55,60)+effect(vEuphoria*55,60)+effect(vMelancholy*0,100)+durMod(5)*effect(vSerenity*75,37.5))*0.66*2
  • Variables:

    vRange = ListVariable([[vRange]], [[Portée]], {[[selfMod]]}, {[[Soi]]})
    
    if character:has([[sRagePoints]]) and character.sRagePoints.current > 0 then
        vRage = NumberVariable([[vRage]], [[Rage]], [[0]], [[character.sRagePoints]], [[1]])
    else
        vRage = StatVariable([[vRage]], 0)
    end
    
    if character:has([[sEuphoriaPoints]]) and character.sEuphoriaPoints.current > 0 then
        vEuphoria = NumberVariable([[vEuphoria]], [[Euphorie]], [[0]], [[character.sEuphoriaPoints]], [[1]])
    else
        vEuphoria = StatVariable([[vEuphoria]], 0)
    end
    
    if character:has([[sSerenityPoints]]) and character.sSerenityPoints.current > 0 then
        vSerenity = NumberVariable([[vSerenity]], [[Sérénité]], [[0]], [[character.sSerenityPoints]], [[1]])
    else
        vSerenity = StatVariable([[vSerenity]], 0)
    end
    
    if character:has([[sMelancholyPoints]]) and character.sMelancholyPoints.current > 0 then
        vMelancholy = NumberVariable([[vMelancholy]], [[Mélancolie]], [[0]], [[character.sMelancholyPoints]], [[1]])
    else
        vMelancholy = StatVariable([[vMelancholy]], 0)
    end
    
  • On used script:

    character.sFlux:changeCurrent(-vFluxCost.value)
    
    if (vRage.value > 0) then
        character.sRagePoints:changeCurrent(-vRage.value)
    end
    if (vEuphoria.value > 0) then
        character.sEuphoriaPoints:changeCurrent(-vEuphoria.value)
    end
    if (vSerenity.value > 0) then
        character.sSerenityPoints:changeCurrent(-vSerenity.value)
    end
    if (vMelancholy.value > 0) then
        character.sMelancholyPoints:changeCurrent(-vMelancholy.value)
    end
    
  • On post script:

    if (success) then
        action.currentCD.value = vCD.value
    end
    
  • Type:

    1

  • Action effects:

    • Use case:

      1*number(vEuphoria.value>0)

    • Name:

      Euphorie relâchée

    • Description:

    • Script:

      character.currentReaction = math.max(character.currentReaction - {{vEuphoria.value}}, 0)
      
    • Variables:

    • Use case:

      1*number(vSerenity.value>0)

    • Name:

      Sérénité relâchée

    • Description:

    • Script:

      effect = character:createEffect([[mReleasedSerenity]])
      effect.displayName:set([[Sérénité relâchée]])
      effect.description:set([[Vous régénérez {{vSerenity.value*0.1}} PA par seconde de plus.]])
      effect.script:set([=[character.sRegenAP:addCurrent([[{{vSerenity.value*0.1}}]], [[psychic]], modifier.displayName.value)]=])
      effect:activate()
      effect.duration:set(5)
      
    • Variables: